Movable gantry system configured to interface with jigs of different sizes

ABSTRACT

A movable gantry system is described. In an example, the movable gantry system is configured to interface with jigs of different types or sizes and/or with different positions of a same jig and/or to perform operations on different parts mounted in such jigs. To do so, the movable gantry system includes an end effector, a gantry, and a computing system. The end effector is mounted within the gantry and provides at least rotational movement to perform operations on a part. The gantry is movable and interfaces with a jig holding the part. Further, the gantry provides translational movement to the end effector. The computing system identifies the gantry and the part and controls the gantry and the end effector, thereby facilitating the operations on the part.

BACKGROUND

In a typical aircraft manufacturing line, structural subassemblies (e.g.wing sections) are built up of elementary parts (e.g. spars, ribs,skins) by the installation of mechanical fasteners such as rivets intoprecisely drilled holes. All current manufacturing processes includedrilling, fastening and other operations on these elementary parts tobuild a subassembly. Assemblies are generally built on jigs.Manufacturing techniques range in complexity from stationary jigsstaffed by workers with hand tools to fully automated assembly linesequipped with monumental robotic installations.

In an illustrative example, an aircraft manufacturing line uses adrilling system. The drilling system enables tools to interface withairplane parts. Once an interface is set up, operating an interfacingtool becomes possible to perform particular drilling operations on acorresponding airplane part.

Typically, there are three existing types of drilling processes, eachwith its own drawbacks:

-   -   1. Manual tools    -   2. Semi-automated drilling tools    -   3. Monumental Machines

Manual drilling with hand tools is highly labor intensive and prone todefect generation. Hole positions are defined by hard tooling such asdrill templates. The template installation process is not very preciseand can induce positional accuracy errors. These are subject to wear,requiring periodic inspection and recertification. If the design of theaircraft changes or a new variant is developed, new tooling may beneeded. In a manual drilling process, each hole is processed by hand inat least four discrete steps: pilot drilling, full size drilling,reaming and countersinking. This is a labor intensive, defect proneprocess. At each step, the operator can generate a defect. Commondefects include perpendicularity, scratches inside the bore of the hole,over depth countersinks, and use of the wrong size drill bit.

Various semi-automated tools exist to address some limitations of fullymanual processes such as the four-step drilling sequence. One example isthe advanced drilling unit (ADU) from Seti-Tec of Lognes, France. Likemanual drilling tools, these tools too, are positioned usingapplication-specific drilling jigs which should be remade if the designof the aircraft changes or the drilling tools should be used on adifferent component or aircraft model. Semi-automated tools suffer thesame template positioning errors as manual drilling processes. As animprovement over simple hand drills, this type of machine can drill,ream and countersink in one shot, largely removing the operator from thehole quality equation. The process is single-operation focused (drillscannot route panels). It is still labor intensive with one-to-one orsometimes one-to-several corresponding operators-to-drills.

Monumental robotic installations are expensive and are often heavyenough to need a specially prepared foundation to support the weight ofthe machine. The fixed nature of the machines make factoryreconfiguration impossible. These machines come with long lead times onthe order of years, do not scale with increases in production volumes,and are costly to maintain. These machines are typically designed toprocess a single assembly for the life of the machine. There is littlescope for reconfiguration to support manufacturing different models ofproduct. Highly specialized personnel should be hired and trained tooperate and maintain these large, complex pieces of equipment.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 illustrates an example end effector within a movable gantrysystem, according to embodiments of the present disclosure;

FIG. 2 illustrates an example Rotation and Clamping Module with an EndEffector, according to embodiments of the present disclosure;

FIG. 3 illustrates an example movement of the Rotation and ClampingModule to another position, according to embodiments of the presentdisclosure;

FIG. 4 illustrates another example movement of the Rotation and ClampingModule to another position, according to embodiments of the presentdisclosure;

FIG. 5 illustrates another example movement of the Rotation and ClampingModule to another position, according to embodiments of the presentdisclosure;

FIG. 6 illustrates an example movable gantry system ready to interfacewith a manufacturing jig, according to embodiments of the presentdisclosure;

FIG. 7 illustrates an example movable gantry system interfacing with amanufacturing jig, according to embodiments of the present disclosure;

FIG. 8 illustrates another view of the example end effector availablewithin movable gantry system, according to embodiments of the presentdisclosure;

FIG. 9 illustrates an example system-level block diagram for oneconfiguration of a movable gantry system, according to embodiments ofthe present disclosure;

FIG. 10 illustrates an example module-level block diagram for a two axisgantry module, according to embodiments of the present disclosure;

FIG. 11 illustrates an example module-level block diagram for a Rotationand Clamping module, according to embodiments of the present disclosure;

FIG. 12 illustrates an example module-level block diagram for a DrillingEnd Effector, according to embodiments of the present disclosure;

FIG. 13 illustrates an example flow for operating a movable gantrysystem, according to embodiments of the present disclosure; and

FIG. 14 illustrates an example computing system for operating a movablegantry system, according to embodiments of the present disclosure.

DETAILED DESCRIPTION

In the following description, various embodiments will be described. Forpurposes of explanation, specific configurations and details are setforth in order to provide a thorough understanding of the embodiments.However, it will also be apparent to one skilled in the art that theembodiments may be practiced without the specific details. Furthermore,well-known features may be omitted or simplified in order not to obscurethe embodiment being described.

Embodiments of the present disclosure are directed to, among otherthings, a Movable Gantry System (MGS). Generally, subassembly factoriesthat wish to update their systems from a fully manual process to anautomated process without the expense, risk and production lossesassociated with monumental robot installations have the possibility tointegrate the MGS. For example, in a typical MGS wing section drillingapplication, the gantry system can be integrated to upgrade an existingmanual assembly cell to drill, ream and countersink the array of holesused to fasten the wing components. When the gantry system is indexed toa jig loaded with elementary parts, the MGS identifies the jig, theaircraft type and serial number of the current assembly in the jig. TheMGS queries a server for the current status of that assembly. Based onthe design of the assembly and any manufacturing progress to date, theMGS can determine how to datum itself to the part and where to performwhich sequence of operations to advance the assembly process. The MGSprocesses the assembly and, in real time, updates the server regardingthe status of the assembly in the jig. A single MGS can be used toprocess multiple jigs serially, and multiple MGS can work andcommunicate in parallel with the server, optimizing productionthroughput.

Various embodiments of the MGS are described in the present disclosure.Generally, the MGS is movable. In other words, the MGS can be operatedto move to different locations around an assembly line or within amanufacturing environment. The MGS can also enable different operationsat the locations and can even be universal, or almost universal. Inother words, different types, sizes, and/or sides of jigs holdingdifferent parts can be distributed at the locations. The MGS caninterface with any of such jigs and can include and operate differenttypes and/or configurations of end effectors to perform operations onany of such parts. A computing system, such as one including a server,can control some or all of the operations of the MGS. The MGS canprovide real time data about the operations to the server, therebyenabling a manufacturing operator to have access to the most up-to-dateinformation about the operations.

In an example, the MGS includes an end effector, a gantry, and acomputing system. The end effector is configured to effectuate anoperation on a part mounted to a jig. Generally, the operation includesa rotation of the end effector about one or more axes of a coordinatesystem. Examples of such an operation include pilot drilling, drilling,reaming, and countersinking.

In this example, the gantry contains the end effector through, forexample, an interface. The end effector can interface with the gantrysuch that a portion of the end effector (e.g., a head of a drill) or theentire end effector can be replaced with another portion and/or endeffector of the same or different type, in a line replaceable unit (LRU)or a plug-and-play fashion for example. This type of gantry-end effectorinterface allows the gantry to contain different end effectors suitablefor different operations. In addition, the gantry can be dimensioned tointerface with a plurality of jigs. The dimensioning can allow thegantry to interface with the plurality of jigs. The gantry can also bemobile such that the gantry is moved in proximity to the jig and suchthat the gantry interfaces with the jig based on proximity. Themovability enables the relocation of the gantry to any jig of theplurality of jigs. Further, the gantry is configured to, upon indexingof the jig, provide a translational movement of the end effector alongthe one or more axes of the coordinate system. The translationalmovement enables the positioning of the end effector at a desiredposition parallel to a particular portion of the part mounted on the jig(e.g., parallel to a point in a wing spar where a hole may be desired).

Also in this example, the computing system is configured to perform anumber of steps. These steps include identifying the jig and the part.For example the gantry can include a radio frequency identification(RFID) reader (or any other type of readers suitable for readinginformation encoded in a marker). Each of the jig and the part can havean attached RFID tag (or any suitable marker encoding information). TheRFID tags include respective unique identifiers of the jig and the part.When read, the unique identifiers are transmitted to the computingsystem over a data network. The computing system stores or has access toa database that lists the jigs and parts. The computing system queriesthe database to identify the jig and the part based on the uniqueidentifiers. The steps also include accessing a model of the part and astatus of operations performed on the part based on the jig and the partbeing identified. For example, the database stores the models andstatuses of different parts and jigs. The query result may return themodel and the status. The steps also include determining datum pointsfor the operation on the assembly based on the model, the status, andthe indexing of the jig. For example, the model and status identify whata next operation should be and the location on the part for such anoperation. The indexing enables the computing system to determine threedimensional coordinates of the location, thereby enabling thedetermination of datum points. The steps also include directing thetranslational movement and the rotation of the end effector based on thedatum points. For example, the computing system sends instructions orremotely controls, over the data network, the translational movement ofthe gantry to position the end effector at the desired position giventhe datum points. The steps also include instructing the end effector toperform operations on the assembly at locations defined by the model andlocalized by the datum points. For example, the instructions aretransmitted over the data network, thereby enabling the computing systemto remotely control the end effector. The steps also include storinginformation about a status of the operation. For example, the computingsystem receives status data about the operations, where the status datais transmitted from the end effector and/or gantry over the datanetwork. The computer system updates the status stored in the databasebased on received status data. This update enables an operator havingaccess to the database to get real-time information about the operationsand the different statuses.

FIG. 1 illustrates an example Movable Gantry System (MGS). The MGS ismovable and can be configured and programmed to perform differentoperations on different parts or sets of parts (assemblies). Potentialoperations include drilling, reaming, countersinking, material cutting,routing, automated composite layup, welding etc. The assemblies can bedistributed at different locations within a factory. The parts,assemblies and jigs can vary in size, shapes, and/or geometry. Exampleassemblies include wings, tails, fuselage, etc. As an example,illustrated in FIG. 6, each assembly 57 can be loaded on a jig 56.Although an airplane assembly environment is described herein, theembodiments of the present disclosure are not limited as such. Theembodiments similarly apply to other assembly and/or manufacturingenvironments, such as ones that relate to automobile, vessels, rockets,etc.

The MGS is a high-precision, robotic platform with an interface whichmay be able to accept various end effectors capable of performing manytypes of manufacturing operations that is mobile, compatible with amultitude of existing jigs, and addresses significant limitations ofother existing manufacturing techniques. In the illustrative example ofFIG. 1, the MGS is configured to drill, ream and countersink holes orroute a panel for an airplane wing, tail, fuselage section or anycompatible structure. To do so, the MGS includes various components. Theblock diagram in FIG. 9 illustrates examples of such components whichmay be combined to form the MGS. In the illustrative example of FIG. 9,the MGS may include, among other components, a System Controller 7 andData Networks 95, an X-Y Gantry Module 86, a Rotation and ClampingModule 87, one or more End Effectors 16, a Radio FrequencyIdentification (RFID) system 88, and a Gantry Locking System 91. Each ofthese components is further described herein next.

Computer Systems and Data Networks

In an example, a MGS may implement a number of computer systems:

-   -   1. MGS System Controller    -   2. MGS Module Controllers    -   3. Manufacturing and Progress Data Server

In an example, the data network 95 communicatively couples the X-YGantry Module Controller 86, End Effector Module Controller 16, and theSystem Controller 7 such that data can be exchanged between thesecomponents. The data network can include a public network, such as theInternet, a private network such as an intranet, or a communication bussuch as RS-232.

In an example, the MGS is equipped with a master controller, referred toherein as the System Controller 7. This controller acts as the conductorof the MGS, coordinating the activities of other MGS subsystems, e.g. anX-Y Gantry Module, and managing part program and progress data from,e.g., a Manufacturing and Progress Process Data Server. Each Module canhave a dedicated controller to direct actions internal to that module.For example, the X-Y Gantry Module Controller 096 can be communicativelycoupled with the System Controller through a local Machine Network andbe configured to take instructions from the System Controller to effectmotions along the X-Axis and Y-Axis, and to perform other functionsinternal to that Module. Other Modules can have their own controller tomanage activities local to that subsystem.

In the example embodiment illustrated in FIG. 9-12, the variouscomputing systems are depicted as running on several discrete computingsystems: the System Controller, the various Module controllers. In thepresent embodiment, these computing systems are communicatively coupledvia a Machine Network, an intranet exclusive to the robot. Otherembodiments could have all the software from each of the System andModule Controllers running on one computing system which can be embeddedwithin the MGS, or located elsewhere and networked with it. Anycombination of any axes, any accessories, and any computing system canbe possible when such components are in communication and are configuredto support the calculation proper trajectories for each of the axes andthe directing of the accessories to perform operations depending on theapplication.

In an example, the computing system is configured to store a part model,a history of operations performed on the part, logic for controllingcomponents of the gantry and/or end effector. In the present disclosureas illustrated in FIG. 9 this computing system is called a Manufacturingand Progress Data Server 86. Such a server can be used to storeinformation like engineering data of the assemblies to be processed, andmachine part program, such as G-Code programs. For record keeping, eachoperation such as referencing datums, loading tools, and drilling holescan be recorded into the Manufacturing and Progress Data Server as itoccurs in real time. During or after operations are completed, it ispossible to query Manufacturing and Progress Data Server to determine,for example, which cutting tools were used at what time to process anyspecific Serial Number.

In the present embodiment illustrated in FIG. 9, the Manufacturing andProgress Data Server is running on a computer system networked with theMGS over an Enterprise Network, e.g. a network owned and managed by theend user of the System. Such a Server can be implemented as a softwarefunction. In other embodiments, this software could be programmed to runon the System Controller 7 or a different computer physically mounted tothe MGS and networked with the system.

X-Y Gantry Module

In the present embodiment, the X-Y Gantry provides the physicalstructure of the system. The module can be fabricated of steel weldmentor extrusion frame construction. Control cabinets containing the SystemController 7 and other electronics can be mounted to the Gantry tocreate a self-contained, movable system. The X-Y Gantry can ride oncasters or other locomotion devices to enable the system to move about afacility to interface with a variety of suitable jigs and workstations.A Gantry Locking System can be fixed to the X-Y Gantry to kinematicallyinterface the system with the Jigs.

In the present embodiment, the X-Y Gantry system allows linear motion inthe X and Y axes of the machine. In the present embodiment this allowsthe machine to translate the End Effector in vertical and horizontaldirections. This is accomplished with two servo driven linear actuatorstranslating carriages on linear guides mounted to the frame. A dedicatedmicroprocessor based X-Y Gantry Module Controller coordinates the twoservo drives, takes commands from and reports faults to the SystemController.

One possible configuration of components of an X-Y Gantry module isillustrated in FIG. 1. The gantry is moveable, mounted on casters, airbearings, or other manual displacement means, or could be moved using anautomated mover such as an Autonomous Guided Vehicle (AGV). FIG. 1portrays the ability of the mobile gantry system to translate the endeffector along the longitudinal (X-Axis), and transverse (Y-Axis)directions. The gantry frame 1 provides rigidity of the assembly andmounting for the X-Axis Actuator 2, X-Axis Guide 3, Indexing Features 6,System Controller 7, Jig ID RFID Sensor 8, and any other accessories. Aservo actuator translates the Y-Axis Actuator 4 along the X-Axis usingan X-Axis Actuator 2. An X-Axis guide 3 maintains the squareness of theY-Axis to the X-Axis. A second servo-driven actuator, the Y-AxisActuator 4, translates the Rotation and Clamping Module 5 along theY-Axis. The servo actuators could be a screw, a rack and pinion, atiming belt, a linear motor, or any other type of actuator that is fitfor that purpose. An embodiment could include a Jig ID RFID Sensor 8.Such a sensor could be used to localize the system within a factory.RFID is not the only localization scheme possible; others could includebarcodes or QR codes on Jigs or on the floor, or a trained operatorcould inform the system of its location through a graphical userinterface in order for the System Controller to select the correct partprogram from a Manufacturing and Progress Data Server.

Rotation and Clamping Module

In an example, a Rotation and Clamping (RAC) Module 5 can be mountedserially at the end of the X-Y Gantry. FIG. 2 illustrates one possiblemechanical configuration, with a block diagram presented in FIG. 11. Inthis example, the RAC Module has the ability to effect linear motion inthe Z-axis direction of the machine, and rotational motions in Phi andTheta about the X and Y axes of the machine, respectively. These axes ofmotion in the present embodiment are generated using the Three-PrismaticRevolute Spherical (3-PRS) parallel linkage mechanism. In thisembodiment, the 3-PRS mechanism consists of three identical seriallinkage mechanisms arranged radially and grounded to an Interface Plate20. Each linkage mechanism comprises a servo driven Prismatic link withassociated Axis Controller 107, coupled by a Revolute joint 21 with afixed length linkage 23. This linkage is Spherically coupled 22 with amoveable End Effector. Other mechanisms are possible with differentarrangement or types of actuators, more or fewer axes of motion orlinkages, depending on the application.

In an example, the RAC Module can be equipped with a camera system withcomputer vision software 115. This camera can be used for datuming thesystem by taking pictures of reference features (e.g. holes, edges,fiducial targets) and calculating transforms based on the position ofthese reference features. The camera also assists with a surfacenormalization function. The RAC Module can project laser crosshairs 116onto the surface to be normalized too. It can use the camera visionsystem to pick up the projection of the laser beams on the surface andcalculates the angle of the RAC Module to the surface based on theobserved projection of the lines. Normalization is achieved by actuatingPhi and Theta axes into position by visual servoing. Other normalizationsensing schemes are also possible, including those using contactpressure sensors, ultrasonic distance sensing, or other means.

In an example, the RAC Module can be equipped with a Load Cell 114 tosupport force-feedback clamping of the nosepiece to the surface whiledrilling. Once the angle of the surface has been determined and the RACModule is normalized, the MGS can approach the surfaces in thenormalized direction to clamp. Once in contact with the surface, thesystem clamps up to the assembly using the load cell feedback to apply aprecise clamping force.

End Effector Module

The End Effector of a robot is the device on the end of the manipulatorwhich performs the robotic task. End effectors which could be integratedwith the MGS include welders, paint sprayers, additive manufacturingnozzles (3D filament printers), drills and routers, among others. In thepresent embodiment, a Drilling End Effector 16 is mounted within the RACModule. The MGS can control the End Effector position and orientation bycommanding the X-Y Gantry and the RAC Module to effect coordinated movesin X, Y, Z, Phi and Theta.

The current embodiment depicts a drill, ream and countersinking EndEffector, FIG. 12. Among other components, a Drilling End Effector maybe equipped with a Drill Module Controller 116, a Feed Axis and aSpindle Axis. A Drill Module Controller can implement software to acceptcommands from a System Controller 7, report status and faults to aSystem Controller, store parameters intrinsic to the subsystem (e.g.homing offsets, gear ratios), and coordinate Feed and Spindle Axesduring operation. A Feed Axis can be equipped with a Feed AxisController 117 controlling a linear Feed Actuator 118 driving the strokeof the drill. Such an axis could have a motion controller controlling amotor based on motion and commands from the Drill Module Controller.That axis controller could report status and faults to the Drill ModuleController. A Spindle Axis controls Spindle rotation based on commandsfrom the Drill Controller. It can report status and faults to the DrillController. Among other tasks, it could control a Coolant Pump 122depending on drilling conditions. In other embodiments, the Drill ModuleController 116 could be omitted, with Feed and Spindle axes detected andcoordinated directly by the System Controller 7.

RFID System

As illustrated in the example of FIG. 9, an RFID System can beintegrated to perform at least two functions:

-   -   1. MGS localization in the plant    -   2. Tool identification

One function of an RFID System could be to localize the MGS in thefactory, to determine which Station of which Jig the MGS is mounted on.The MGS can have an RFID Reader 88 and RFID Antenna 8 mounted to thegantry frame which allows reading tags. Tags 59 can be mounted onto Jigsin known locations, readable by the Reader on the MGS or a handhelddevice carried by an operator. If a Jig has multiple stations where theMGS can mount, it can have multiple RFID tags readable in each of thosestations in order for the MGS to uniquely determine its position in thefactory. Using the serial number encoded into the tag, the MGS queriesthe Server for its current station.

A second function of an RFID System could be cutting tool identificationand usage tracking. Many modern cutting tool holders are capable ofbeing equipped with an RFID chip (e.g. Balluff), and the MGS can beequipped with a Tool RFID reader 90 to read that chip. The RFID chip canbe programmed with information such as Tool Type, Tool Serial Number,Diameter, and Countersink Angle, and setup parameters such as toollength offset and cycles on the cutter. The use of this type of systemcan help to eliminate the error of loading the wrong tool. A PartProgram can call out a specific Tool Type. Rules can be implemented inthe System Controller software to enforce maximum cutting tool life.When a tool is loaded, the MGS can validate that tool. It becomesimpossible to use the wrong cutting tool or exceed maximum tool life.

Gantry Locking System

In an example illustrated in FIG. 9, the MGS can be equipped with aLocking System designed to index and lock the Gantry to a compatibleJig. Such a locking system could include at least kinematic indexingfeatures 6 (e.g. locating pins and bushings) to precisely index theGantry to the Jig, and actuators 93 to lock the Gantry to the Jig. AGantry Locking System could include other features, such as guides torough locate the system to facilitate properly engaging the kinematicindexing features, and sensors 92 to detect proper interfacing, stop thesystem and alert the operator if the locking actuators fail.

Referring again to FIG. 1, FIG. 1 illustrates one embodiment of aMovable Gantry System. In an example, the movable gantry system isconfigured to interface with jigs of different types or sizes and/orwith different positions of a same jig and/or to perform operations ondifferent parts mounted in such jigs. To do so, the movable gantrysystem includes an end effector, a gantry, and a computing system. Theend effector is mounted within the gantry and provides at leastrotational movement to perform operations on a part. The gantry ismovable and interfaces with a jig holding the part. Further, the gantryprovides translational movement to the end effector. The computingsystem identifies the gantry and the assembly and controls the gantryand the end effector, thereby facilitating the operations on theassembly.

FIG. 2 illustrates an example Rotation and Clamping (RAC) Module withDrilling End Effector. As illustrated, the RAC Module can include aDrilling End Effector 16 mounted within a structure 20 able to effectrotations in two directions, Phi and Theta, and clamping in the Z-axis.The RAC Module structure has a plug and play interface for installationinto a compatible interface on a gantry or other robotic positioner. TheRAC Module performs normalization and force-feedback clamping on thesurface to be drilled. Once normalized and clamped, the Drilling EndEffector performs drilling and countersinking operations. Thefunctionalities can be controlled via a computing system (e.g., memoryand processor) local to drill module, the gantry, or remotely at a backend system (e.g., server) in data communication with the drill/gantry.

A RAC Module can be equipped with three parallel linear actuatorsarranged in the 3-PRS configuration. The 3-PRS parallel manipulator ismade up of three serial chains of one driven Prismatic actuator, apassive Revolute joint, a linkage, and a passive Spherical joint. Thesethree serial chains meet at the Frame structure and at the End Effectorinterface, forming a closed, parallel kinematic structure. The Frame isa fixed body, and the End Effector interface moves in Phi, Theta andZ-axis relative to the Frame. The three Prismatic actuators are servodriven. The actuators are commanded and coordinated by the RAC ModuleController. This controller takes commands from and communicates faultswith the MGS System Controller over the local Machine Network

A Drilling End Effector is one example End Effector which is compatiblemechanically and electrically with the RAC Module. The drill interfacesmechanically with the RAC module at the End Effector Interface. ThisDrill is a self-contained module with two axes of motion: Feed andSpindle Rotation. Each axis of motion has a dedicated motion controller.These motion controllers can be coordinated by a Drill ModuleController. The Drill Module Controller can take commands from andcommunicate faults with the MGS System Controller over the local MachineNetwork.

FIGS. 3-5 illustrate the operation of the RAC Module moving to variouspositions within its operational range. The RAC Module Controller canreceive] a (Phi, Theta, Z) position command from the MGS SystemController. The Module Controller uses the inverse kinematic model ofthe system stored on the Module Controller to calculate a set ofPrismatic actuator positions which satisfies the commanded (Phi, Theta,Z) position. If the commanded pose is not satisfiable due to mechanicalor other constraints of the system, the Module Controller communicatesthat fault back up to the System Controller. If the pose is possible,the Module Controller calculates a trajectory and then commands thethree Prismatic servo actuators to move to that pose in a coordinatedmotion. Once the pose is achieved, Module Status is transmitted up tothe System Controller, and the Module is ready for the next command.FIG. 3 illustrates the end effector in a fully retracted position withno rotation. FIG. 4 illustrates the end effector in a fully advancedposition with no rotation. FIG. 5 illustrates the end effector in a poseangled in Phi and Theta midway through the Z-Axis travel.

FIG. 6 illustrates one possible embodiment of a work cell including aMovable Gantry System and an assembly jig. In the present embodiment,the MGS is configured to interface with an appropriately configured jigand perform drilling operations. The Jig is configured to index and holdelementary parts of an aircraft assembly for drilling. The gantry can beconfigured to be compatible with at least that jig. The jig and gantrysystems are equipped with indexing features allowing kinematicmechanical interfacing. The jig can be either fixed in the factory ormobile.

FIG. 7 illustrates an example movable gantry system interfacing with amanufacturing jig. To use this embodiment of the MGS, it first may beinterfaced with a Jig. The MGS is roughly located near the Jig to beprocessed manually or automatically. Once it is close enough to thefinal position, precision kinematic mounting elements such as precisionpins and bushings are engaged to mate the MGS with the Jig. Once thekinematic mounting elements are fully engaged, a locking mechanism canbe used to ensure nothing moves during processing. Sensors can be usedto validate the mounting and locking, and stop the system if the locksor mountings disengage.

FIG. 8 illustrates an example movement of the RAC Module and EndEffector mounted within the movable gantry system while mounted to theJig. The part has been recognized and datuming has been performed. TheRAC Module has been commanded to normalize to the surface, haspositioned itself in place, clamped up to the surface and the drillingof a hole is in progress.

FIG. 9 illustrates a system level block diagram of one embodiment of aMovable Gantry System. In an example, a MGS could be configured toinclude a System Controller, an X-Y Gantry Module, a Rotation andClamping Module, a Drilling End Effector Module, an RFID Module, aGantry Locking System, and a Manufacturing and Progress Data Server. Inan example the System Controller is configured to coordinate theactivities of subordinate Modules based on input data from the Server.In an example, an X-Y Gantry Module could be integrated to generatemotions in the X- and Y-directions of a MGS. In an example, a Rotationand Clamping Module could be integrated to generate motions in the Z-,Phi- and Theta-axes of a machine. In an example, a Drilling End Effectorcould be integrated to drill holes in an aircraft assembly. In anexample, an RFID Module could be integrated to aid in localizing a MGSwithin a factory and for cutting tool identification. In an example, aGantry Locking System could be integrated to aid in precisely indexing aMGS with an appropriate manufacturing Jig within a factory.

FIG. 10 illustrates a module level block diagram of one embodiment of aMGS X-Y Gantry Module subsystem. In an example, an X-Y Gantry module isconfigured with a Module Controller, an X-Axis Controller, a Y-AxisController, and X and Y-Actuators. An X-Y Gantry Module Controller couldbe programmed to take commands from, and report status and faults to aSystem Controller. Depending on the command, the Module Controller couldcoordinate motions in the X and Y Axes of an MGS. In an example, theAxis Controllers could be programmed to take commands from, and reportstatus and faults to the Module Controller. In an example, the modulewould be equipped with X- and Y-Axis actuators able to generate motionsin the X and Y directions, respectively.

FIG. 11 illustrates a module level block diagram of one embodiment of aMGS Rotation and Clamping Module subsystem. In an example, a Rotationand Clamping Module is configured with a Module Controller, AxisControllers A, B, and C, Actuators A, B, and C, a Load Cell, a DatumingSystem and a Laser Crosshair. In an example, a Rotation and ClampingModule Controller could be programmed to take commands from, and reportstatus and faults to a System Controller. Depending on the command, theModule Controller could coordinate motions in the Z, Phi, and Theta Axesof a MGS by commanding the Axis Controllers. The Axis Controllers couldbe programmed to take commands from, and report status and faults to theModule Controller. In an example, the Rotation and Clamping Module couldbe equipped with a Datuming System such as a Video Camera. This Cameracould be programmed to identify key features on an assembly to beprocessed to aid in the positioning of operations. In an example, themodule could be equipped with a laser crosshair. In conjunction with aproperly programmed camera, this laser could be used to aid innormalizing the module to the surface to be processed.

FIG. 12 illustrates a module level block diagram of one embodiment of aMGS Drilling End Effector Module subsystem. In an example, a DrillModule is configured with a Module Controller, a Feed-Axis Controller,and a Spindle Controller. A Drill Module Controller could be programmedto take commands from, and report status and faults to a SystemController. In an example, the Axis Controllers could be programmed totake commands from, and report status and faults to the ModuleController. Depending on the command, the Module Controller couldcoordinate the Feed and Spindle Axes to drill holes. In an example, aSpindle Controller could control the rotational speed of a spindle motorand the dispensing of coolant via a coolant pump. In an example, a FeedAxis Controller could control the position of a Feed Actuator.

FIG. 13 illustrates a flowchart diagramming one potential use case ofthe MGS being applied to drilling holes in an aircraft structure. In anexample the flow chart includes multiple operations performedsequentially. Unless indicated otherwise by the context, theseoperations can be controlled by one or more components of the MGS (e.g.,a computing system of the MGS) and/or performed by the same or one ormore other components of the MGS (e.g., computing system, the gantryand/or the end effector). In the interest of clarity of explanation, theoperations are described in connection with using the MGS to drill holesin a wing section and connect the wing skin to underlying structures.However, embodiments of the present disclosure are not limited as such.Instead, the illustrated flowchart of FIG. 13 and, thus, the operationscan be similarly applied to other parts, operations on parts, other jigsholding other parts, applications which require no jigs to hold theparts, other end effectors, and/or other manufacturing manufacturedproducts (e.g., automobiles). As described, the MGS can be movable anduniversal in the sense that it can be moved within different locationsof a manufacturing environment, interface with different jigs, operateon different parts, and provide near-real-time information about theoperations performed on any part.

As illustrated in FIG. 13, the process begins 201 with a ready-to-useMovable Gantry System 58 and a “loaded” jig, such as the elementary wingparts are properly positioned within a wing assembly jig, ready to beprocessed by drilling. FIG. 6 provides a demonstrative illustration ofthis step of the process.

The MGS is moved to the loaded Jig to be processed 202. The operator canplace the MGS near enough to the Jig to engage the precision indexingfeatures of the Jig and MGS to precisely and repeatably index the MGS onthe Jig 203. Once MGS is indexed to the part, the worker can connect anyof the necessary utilities, such as electrical power, signal cables, andcompressed air 204. The operator may now power on the MGS. Using theHuman Machine Interface (HMI), the operator can command the machine to“Home” 205. Each axis of motion of the machine can search for its HomePosition by moving in a predetermined direction until the axisencounters a limit switch, also known as a Home Sensor. Once this sensoris found the encoder counts are “zero'd” for that axis and the positionis known in Machine Coordinates.

Once the axes are all homed, the MGS may localize itself to the currentJig 206. In the present disclosure, localization can be performed usingan onboard RFID reader to read RFID chips embedded in each station ofeach jig. However, localization could be done by manual input into anHMI, or other means. With the station determined, the MGS can determinethe serial number of the assembly in the jig. This can be done throughmanual input into the HMI, by scanning a QR or Barcode affixed to thepart, or by other means depending on the application. Once the MGS knowsits current Jig, Station and which Serial Number it has to process, MGSqueries the Manufacturing and Progress Data Server to determine if thereare any operations to perform 207.

If there are further operations to perform 208, MGS checks if the Datumsfor those operations have been acquired 209. Datuming can be performedusing the onboard camera, a magnetic sensor (e.g. Halo) to identifyDatum features. If necessary, Datums are acquired 210. Once datums arereferenced, the machine knows precisely where to drill holes. Before itcan drill, the machine validates that the correct cutting tool is loadedinto the spindle 211. Tool validation can be done manually by theoperator or automatically if the toolholder is equipped with an RFIDchip e.g. Balluff chip. If no tool is loaded or the wrong tool is loadedthe machine prompts the operator to load the correct tool and validatethe tool on the HMI 212. Tool loading can be automated if the machine isequipped with an automatic tool changer.

Once the gantry is mounted to the Jig, the MGS must acquire a unique JigLocation Identifier to ascertain its position within the plant. Thegantry can use its onboard RFID reader to identify which jig it isinterfaced with. Alternatively, the operator can scan the Jig positionusing a handheld RFID Reader, or the operator can scan a barcode mountedon the jig, or the operator can manually input the MGS location usingthe Graphical Human Machine Interface (HMI) of the system. Once a uniquejig location identifier is acquired, the MGS queries the Server for nextsteps.

The assembly in the jig can be identified by Manufacturer Serial Number(MSN, a.k.a. Line Number). The assembly can be equipped with anidentification feature such as a barcode or QR Code. The approximatelocation of the ID feature may be predefined and known to the Server.When the MGS informs the server where it is in the plant, the server canrespond with a location in machine coordinates where to look for theAssembly ID feature. The machine would move to that position and, usingthe computer vision system in the RAC Module or some other means, scanthe QR/Barcode and ascertain the MSN. Otherwise, the operator canmanually input the MSN through the HMI.

The Server can track progress made towards completion of each Assemblythat goes through the factory. Once the gantry knows where it is in theplant and which MSN it is working on, the server downloads Part Programsto the Gantry. Part programs list all datums and operations which theGantry may perform on the assembly, in order. When the gantry receivesits first part program it begins by datuming itself to the part. In thesimplest case, all parts are precisely indexed to the jig and thekinematic mounting between the Jig and the MGS is sufficiently accurateto facilitate immediate processing without datuming. However, this isnot always possible. Therefore, the MGS can be equipped with at leasttwo datuming means. Datuming can be accomplished by using a visionsystem to scan the assembly for reference features, or by using anonboard magnetic Through Skin Sensor to detect hidden featuresinstrumented with magnets. Once datums are acquired, the MGS can begindrilling.

The machine is now ready to drill. The MGS performs operations as laidout in the part program 213. Each operation is recorded in theManufacturing and Progress Data Server. Once the operation is complete,the flow returns to 208. If there are no more operations to perform atthe current station, the MGS is powered down 214, utilities disconnected215, and removed 216. This marks the end of the process 217. The MGS isnow ready to be applied to a different Jig, put in storage ormaintained.

FIG. 14 illustrates examples of components of a computing system 1400according to certain embodiments. The computing system 1400 is anexample of the computers systems described in connection with FIGS.1-13. Although these components are illustrated as belonging to a samecomputing system 1400, the computing system 1400 can also bedistributed.

The computing system 1400 includes at least a processor 1402, a memory1404, a storage device 1406, input/output peripherals (I/O) 1408,communication peripherals 1410, and an interface bus 1412. The interfacebus 1412 is configured to communicate, transmit, and transfer data,controls, and commands among the various components of the computingsystem 1400. The memory 1404 and the storage device 1406 includecomputer-readable storage media, such as RAM, ROM, electrically erasableprogrammable read-only memory (EEPROM), hard drives, CD-ROMs, opticalstorage devices, magnetic storage devices, electronic non-volatilecomputer storage, for example Flash® memory, and other tangible storagemedia. Any of such computer readable storage media can be configured tostore instructions or program codes embodying aspects of the disclosure.The memory 1404 and the storage device 1406 also include computerreadable signal media. A computer readable signal medium includes apropagated data signal with computer readable program code embodiedtherein. Such a propagated signal takes any of a variety of formsincluding, but not limited to, electromagnetic, optical, or anycombination thereof. A computer readable signal medium includes anycomputer readable medium that is not a computer readable storage mediumand that can communicate, propagate, or transport a program for use inconnection with the computing system 1400.

Further, the memory 1404 includes an operating system, programs, andapplications. The processor 1402 is configured to execute the storedinstructions and includes, for example, a logical processing unit, amicroprocessor, a digital signal processor, and other processors. Thememory 1404 and/or the processor 1402 can be virtualized and can behosted within another computing system of, for example, a cloud networkor a data center. The I/O peripherals 1408 include user interfaces, suchas a keyboard, screen (e.g., a touch screen), microphone, speaker, otherinput/output devices, and computing components, such as graphicalprocessing units, serial ports, parallel ports, universal serial buses,and other input/output peripherals. The I/O peripherals 1408 areconnected to the processor 1402 through any of the ports coupled to theinterface bus 1412. The communication peripherals 1410 are configured tofacilitate communication between the computing system 1400 and othercomputing devices over a communications network and include, forexample, a network interface controller, modem, wireless and wiredinterface cards, antenna, and other communication peripherals.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations, and/or additions to the present subjectmatter as would be readily apparent to one of ordinary skill in the art.Indeed, the methods and systems described herein may be embodied in avariety of other forms; furthermore, various omissions, substitutionsand changes in the form of the methods and systems described herein maybe made without departing from the spirit of the present disclosure. Theaccompanying claims and their equivalents are intended to cover suchforms or modifications as would fall within the scope and spirit of thepresent disclosure.

Unless specifically stated otherwise, it is appreciated that throughoutthis specification discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining,” and “identifying” or the likerefer to actions or processes of a computing device, such as one or morecomputers or a similar electronic computing device or devices, thatmanipulate or transform data represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of thecomputing platform.

The system or systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provide a result conditionedon one or more inputs. Suitable computing devices include multipurposemicroprocessor-based computer systems accessing stored software thatprograms or configures the computing system from a general-purposecomputing apparatus to a specialized computing apparatus implementingone or more embodiments of the present subject matter. Any suitableprogramming, scripting, or other type of language or combinations oflanguages may be used to implement the teachings contained herein insoftware to be used in programming or configuring a computing device.

Embodiments of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

Conditional language used herein, such as, among others, “can,” “could,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain examples include, while otherexamples do not include, certain features, elements, and/or steps. Thus,such conditional language is not generally intended to imply thatfeatures, elements and/or steps are in any way required for one or moreexamples or that one or more examples necessarily include logic fordeciding, with or without author input or prompting, whether thesefeatures, elements and/or steps are included or are to be performed inany particular example.

The terms “comprising,” “including,” “having,” and the like aresynonymous and are used inclusively, in an open-ended fashion, and donot exclude additional elements, features, acts, operations, and soforth. Also, the term “or” is used in its inclusive sense (and not inits exclusive sense) so that when used, for example, to connect a listof elements, the term “or” means one, some, or all of the elements inthe list. The use of “adapted to” or “configured to” herein is meant asopen and inclusive language that does not foreclose devices adapted toor configured to perform additional tasks or steps. Additionally, theuse of “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Similarly, the use of “based at least inpart on” is meant to be open and inclusive, in that a process, step,calculation, or other action “based at least in part on” one or morerecited conditions or values may, in practice, be based on additionalconditions or values beyond those recited. Headings, lists, andnumbering included herein are for ease of explanation only and are notmeant to be limiting.

The various features and processes described above may be usedindependently of one another, or may be combined in various ways. Allpossible combinations and sub-combinations are intended to fall withinthe scope of the present disclosure. In addition, certain method orprocess blocks may be omitted in some implementations. The methods andprocesses described herein are also not limited to any particularsequence, and the blocks or states relating thereto can be performed inother sequences that are appropriate. For example, described blocks orstates may be performed in an order other than that specificallydisclosed, or multiple blocks or states may be combined in a singleblock or state. The example blocks or states may be performed in serial,in parallel, or in some other manner. Blocks or states may be added toor removed from the disclosed examples. Similarly, the example systemsand components described herein may be configured differently thandescribed. For example, elements may be added to, removed from, orrearranged compared to the disclosed examples.

What is claimed is:
 1. A system comprising: an end effector configuredto effectuate an operation on a part mounted to a jig; a movable systemcomprising the end effector and a sensor system and dimensioned tointerface with a plurality of jigs of different dimensions, wherein thesensor system comprises at least one of an optical sensor and a lightsource; and a computing system configured to: receive a first identifierof the jig and a second identifier of the part based on proximitybetween the movable system and the jig; identify the jig and the part byat least querying a database based on the first identifier and thesecond identifier; determine a relative position between the movablesystem and the jig based on kinematic indexing and locking of themovable system to the jig; access, from the database, a model of thepart, the model identifying a location on the part for the operation;detect the location on the part for the operation based on sensor dataof the sensor system; determine a three dimensional position of thelocation, the three dimensional position determined in a coordinatesystem of the movable system based on the location and the relativeposition between the movable system and the jig; set the threedimensional position of the location as a datum point; determine, byusing the optical sensor, a surface of the part; determine, based on oneor more projections from the light source onto the surface, an angleneeded to normalize the end effector to the surface of the part at thedatum point; determine, based on the angle, at least a rotation along anaxis of the coordinate system of the movable system; direct the endeffector to perform the operation in the coordinate system on the partbased on three dimensional position and the rotation along the axis; andstore information about a status of the operation, the informationcausing an update to the model.
 2. A method comprising: receiving, by acomputing system, a first identifier of a jig interfacing with a movablesystem and a second identifier of a part mounted to the jig, the firstidentifier and the second identifier received based on proximity betweenthe movable system and the jig, the movable system comprising an endeffector and a sensor system, the sensor system comprising an opticalsensor and a light source; identifying, by the computing system, the jigand the part by at least querying a database based on the firstidentifier and the second identifier; determining, by the computingsystem, a relative position between the movable system and the jig basedon kinematic indexing and locking of the movable system to the jig;accessing, by the computing system, a model of the part from thedatabase, the model identifying a location on the part for an operation;determining, by the computing system, the location on the part for theoperation based on sensor data of the sensor system; determining, by thecomputing system, a three dimensional position of the location, thethree dimensional position determined in a coordinate system of themovable system based on the location and the relative position betweenthe movable system and the jig; setting, by the computing system, thethree dimensional position of the location as a datum point;determining, by the computing system based on the optical sensor, asurface of the part; determining, by the computing system based on oneor more projections from the light source onto the surface, an angleneeded to normalize the end effector to the surface of the part at thedatum point determining, by the computing system based on the angle, atleast a rotation along an axis of the coordinate system of the movablesystem; directing, by the computing system, the end effector to performthe operation in the coordinate system on the part based on threedimensional position and the rotation along the axis; and storing, bythe computing system, information about a status of the operation, theinformation causing an update to the model.
 3. A non-transitorycomputer-readable storage medium comprising computer-readableinstructions that, upon execution by a computing system, configure thecomputing system to perform operations comprising: receiving a firstidentifier of a jig interfacing with a movable system and a secondidentifier of a part mounted to the jig, the first identifier and thesecond identifier received based on proximity between the movable systemand the jig, the movable system comprising an end effector and a sensorsystem, the sensor system comprising an optical sensor and a lightsource; identifying the jig and the part by at least querying a databasebased on the first identifier and the second identifier; determining arelative position between the movable system and the jig based onkinematic indexing and locking of the movable system to the jig;accessing a model of the part from the database, the model identifying alocation on the part for an operation; determining the location on thepart for the operation based on sensor data of the sensor system;determining a three dimensional position of the location, the threedimensional position determined in a coordinate system of the movablesystem based on the location and the relative position between themovable system and the jig; setting the three dimensional position as adatum point in the coordinate system of the movable system; determining,based on the optical sensor, a surface of the part; determining, basedon one or more projections from the light source onto the surface, anangle needed to normalize the end effector to the surface of the part atthe datum point determining, based on the angle, at least a rotationalong an axis of the coordinate system of the movable system; directingthe end effector to perform the operation in the coordinate system onthe part based on three dimensional position and the rotation along theaxis; and storing information about a status of the operation, theinformation causing an update to the model.
 4. The system of claim 1,wherein the operation of the end effector comprises the rotation of theend effector about at least two axes of the coordinate system of themovable system.
 5. The system of claim 4, wherein the movable system isconfigured to, based on the kinematic indexing, provide a translationalmovement of the end effector along the one or more axes of thecoordinate system of the movable system.
 6. The system of claim 1,wherein the model identifies the datum point and the operation based onthe part, the end effector, and on a status of one or more operationsalready performed on the part.
 7. The system of claim 1, wherein aplurality of parts having different dimensions are individuallymountable to the jig, wherein the computing system is further configuredto receive a serial number of the part based on the proximity, andwherein the part is further identified based on the serial number. 8.The system of claim 1, wherein directing the end effector comprisesdirecting a position and orientation of the end effector in thecoordinate system of the movable system.
 9. The system of claim 1,wherein the first identifier comprises a jig identifier (ID), whereinthe second identifier comprises a part ID, wherein the jig ID and thepart ID are received separately from each other.
 10. The system of claim1, wherein the computing system is further configured to: identify asecond jig and a second part mounted on the second jig based onrelocation of the movable system to a second location of the second jig,the second location being different from a first location of the jig,and the second jig having different dimensions than the jig; anddetermine a second datum point on the second part in the coordinatesystem of the movable system.
 11. The system of claim 10, wherein themovable system comprises a second end effector in lieu of the endeffector when at the second location, wherein the computing system isfurther configured to: direct the second end effector to perform asecond operation on the second part based on the second datum point. 12.The method of claim 2, wherein the jig is associated with at least oneindex location, and wherein the kinematic indexing is based on the indexlocation.
 13. The method of claim 2, wherein directing the end effectorcomprises directing a position and orientation of the end effector inthe coordinate system of the movable system.
 14. The method of claim 2,wherein the first identifier comprises a jig identifier (ID), whereinthe second identifier comprises a part ID, and wherein identifying thejig and the part comprises: determining, from the database storinginformation about parts installed in a plurality of jigs of differentdimensions, the part ID based on the jig ID.
 15. The method of claim 2,further comprising: identifying, by the computing system, a second jigand a second part mounted on the second jig based on relocation of themovable system to a second location of the second jig, the secondlocation being different from a first location of the jig, and thesecond jig having different dimensions than the jig; and determining, bythe computing system, a second datum point on the second part in thecoordinate system of the movable system.
 16. The method of claim 15,wherein the movable system comprises a second end effector in lieu ofthe end effector when at the second location, the method furthercomprising: directing, by the computing system, the second end effectorto perform a second operation on the second part based on the seconddatum point.
 17. The non-transitory computer-readable storage medium ofclaim 3, wherein the computing system is further configured to receive aserial number of the part based on the proximity, and wherein the partis further identified based on the serial number.
 18. The non-transitorycomputer-readable storage medium of claim 3, directing the end effectorcomprises directing a position and orientation of the end effectorrelative in the coordinate system of the movable system.
 19. Thenon-transitory computer-readable storage medium of claim 3, wherein thefirst identifier comprises a jig identifier (ID), wherein the secondidentifier comprises a part ID, and wherein identifying the jig and thepart comprises: determining, from the database storing information aboutparts installed in a plurality of jigs of different dimensions, the partID based on the jig ID.
 20. The non-transitory computer-readable storagemedium of claim 3, wherein the operations further comprise: identifyinga second effector that replaced the end effector in the movable system;and directing the second effector to perform a second operation on thepart.